অ্যাপাচি আইভি (Apache Ivy) একটি শক্তিশালী ডিপেন্ডেন্সি ম্যানেজমেন্ট টুল যা প্রধানত জাভা প্রকল্পে লাইব্রেরি এবং ডিপেন্ডেন্সি ম্যানেজমেন্টের জন্য ব্যবহৃত হয়। Module Descriptor বা ivy.xml ফাইল হচ্ছে আইভির ডিপেন্ডেন্সি এবং মডিউল সম্পর্কিত কনফিগারেশন ফাইল, যা প্রকল্পের ডিপেন্ডেন্সি, ভার্সন, রিপোজিটরি এবং অন্যান্য তথ্য সংরক্ষণ করে।
আইভির module descriptor ফাইলটি মূলত XML ফরম্যাটে লেখা হয় এবং এটি প্রকল্পের ডিপেন্ডেন্সি ম্যানেজমেন্টের ভিত্তি হিসেবে কাজ করে। এই ফাইলটির মধ্যে আপনি প্রকল্পের নাম, গোষ্ঠী (organization), সংস্করণ, এবং প্রকল্পের জন্য প্রয়োজনীয় ডিপেন্ডেন্সি গুলি উল্লেখ করেন।
এখানে ivy.xml ফাইলের মূল কাঠামো এবং উপাদানগুলো ব্যাখ্যা করা হলো:
<ivy-module version="2.0">
<info organisation="com.example" module="myapp" revision="1.0"/>
<!-- Repositories where dependencies will be searched -->
<repositories>
<repository name="central" url="https://repo.maven.apache.org/maven2"/>
</repositories>
<!-- Dependencies for the project -->
<dependencies>
<dependency org="org.apache.commons" name="commons-lang3" rev="3.9"/>
</dependencies>
</ivy-module>
এখানে:
এই ট্যাগটি একটি আইভি মডিউল ডেসক্রিপ্টরের মূল ট্যাগ। এটি পুরো ফাইলের কাঠামো এবং সংস্করণ নির্ধারণ করে।
<ivy-module version="2.0">
ট্যাগটি মডিউলের মৌলিক তথ্য ধারণ করে, যেমন গোষ্ঠী (organisation), মডিউল নাম (module), এবং সংস্করণ (revision)। এটি আইভি মডিউল ডেসক্রিপ্টরের শুরুতে থাকে।
<info organisation="com.example" module="myapp" revision="1.0"/>
ট্যাগটি সেই রিপোজিটরি সমূহ নির্ধারণ করে, যেখান থেকে ডিপেন্ডেন্সি সংগ্রহ করা হবে। এটি সাধারণত Maven Central বা Ivy Repository হতে পারে।
<repositories>
<repository name="central" url="https://repo.maven.apache.org/maven2"/>
</repositories>
এই ট্যাগটি প্রকল্পের জন্য নির্দিষ্ট ডিপেন্ডেন্সিগুলি সংজ্ঞায়িত করে। প্রতিটি ট্যাগের মধ্যে লাইব্রেরির গোষ্ঠী (organization), নাম (name), এবং সংস্করণ (revision) থাকে।
<dependencies>
<dependency org="org.apache.commons" name="commons-lang3" rev="3.9"/>
</dependencies>
এটি লাইব্রেরি বা মডিউল এর বিভিন্ন আউটপুট ফাইল যেমন JAR, WAR, অথবা EAR ফাইল সংজ্ঞায়িত করে। সাধারণত এটি মডিউলগুলির উৎপাদন আউটপুট ফাইলগুলি সংরক্ষণ এবং পরিচালনা করতে ব্যবহৃত হয়।
<artifacts>
<artifact name="myapp" type="jar" ext="jar"/>
</artifacts>
এখানে:
এই ট্যাগটি ডিপেন্ডেন্সির কনফিগারেশন বা স্কোপ সেট করতে ব্যবহৃত হয়। এর মাধ্যমে আপনি নির্দিষ্ট করে দিতে পারেন কোন ডিপেন্ডেন্সি কোন কনফিগারেশনে ব্যবহৃত হবে।
<configurations>
<configuration name="compile"/>
</configurations>
এখানে:
এই ট্যাগটি একটি কেন্দ্রীয় স্থান থেকে ডিপেন্ডেন্সি ম্যানেজমেন্ট প্রদান করে, যা ডিপেন্ডেন্সি রেজোলিউশনে সাহায্য করে এবং কনফ্লিক্ট রেজোলিউশন করে।
<dependencyManagement>
<dependencies>
<dependency org="org.springframework" name="spring-core" rev="5.2.4.RELEASE"/>
</dependencies>
</dependencyManagement>
এখানে:
Module Descriptor (ivy.xml) ফাইল অ্যাপাচি আইভির মূল কাঠামো, যা আপনার প্রকল্পের ডিপেন্ডেন্সি এবং মডিউল সম্পর্কিত তথ্য সংরক্ষণ করে। এই ফাইলে আপনি , , , , , এবং ট্যাগ ব্যবহার করে ডিপেন্ডেন্সি এবং রিপোজিটরি সংক্রান্ত কনফিগারেশন পরিচালনা করতে পারেন। এটি আইভির ডিপেন্ডেন্সি রেজোলিউশন প্রক্রিয়া স্বয়ংক্রিয়ভাবে পরিচালনা করতে সহায়তা করে এবং আপনার প্রোজেক্টের ডিপেন্ডেন্সি ম্যানেজমেন্ট সহজ করে তোলে।
common.read_more